﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace Web.Admin.ashx
{
    /// <summary>
    /// advtools 的摘要说明
    /// </summary>
    public class advtools : Evan.WebUI.ManagerAshxHelper
    {

        public override void ProcessRequest(HttpContext context)
        {
            string action = Evan.Common.CommFun.GetQueryString("action");

            if (!IsAdminLogin())
            {
                if (action == "adminLogin")
                {
                    AdminLogin(context);
                }
                else
                {
                    JsonResult(context, -99, "管理员未登陆");
                }
            }
            else
            {
                switch (action)
                {
                    case "rewriteedit":
                        RewriteEdit(context);
                        break;
                    case "robotsedit":
                        RobotsEdit(context);
                        break;
                    default:

                        break;
                }
            }
        }

        void RewriteEdit(HttpContext context)
        {
            try
            {
                if (!Evan.Member.Administrator.IsSuperAdmin())
                {
                    JsonResult(context, -100, "权限不足 , 仅超级管理员可操作");
                }
                //拿到路径
                //拿到内容
                //将现有文件另存为一份备份
                //将内容存储到现有文件
                string ModelStr = GetParam("model");
                string Table = GetParam("table");
                string Type = GetParam("type");
                dynamic Model = Evan.Model.ConvertModel.ConvertToDynamic(ModelStr);
                string old_content = Evan.Common.DirFile.ReadFile(Model.FilePath);
                string old_path = Model.FilePath + "." + DateTime.Now.ToString("yyyyMMddHHmmssffff") + ".bak";
                //将old_content 存储为备份文件
                Evan.Common.DirFile.SaveFile(old_content, old_path);
                //将新的文件覆盖存储
                string new_content = (Model.FileContent).Replace("&", "&amp;"); ;
                Evan.Common.DirFile.SaveFile(new_content, Model.FilePath);
                Evan.SystemLog.SysLog.AddSysLog("管理员 [" + Evan.Member.Administrator.GetAdminName() + "] 修改伪静态文件成功", "管理员 [" + Evan.Member.Administrator.GetAdminName() + "] 修改伪静态文件成功<br/>文件名 : " + Model.FilePath + "<br/>备份文件名 : " + old_path);
                //返回
                JsonResult(context, 1, "修改成功");
            }
            catch (System.Threading.ThreadAbortException) { }
            catch (Exception ex)
            {
                Evan.SystemLog.MemLog.AddExLog2("编辑伪静态失败", null, ex.ToString());
                Evan.SystemLog.SysLog.AddSysLog("管理员 [" + Evan.Member.Administrator.GetAdminName() + "] 修改伪静态失败", "管理员 [" + Evan.Member.Administrator.GetAdminName() + "] 修改伪静态失败");
                JsonResult(context, -1, "修改失败 , 请稍后重试");
            }
            
        }

        void RobotsEdit(HttpContext context)
        {
            try
            {
                if (!Evan.Member.Administrator.IsSuperAdmin())
                {
                    JsonResult(context, -100, "权限不足 , 仅超级管理员可操作");
                }
                //拿到路径
                //拿到内容
                //将现有文件另存为一份备份
                //将内容存储到现有文件
                string ModelStr = GetParam("model");
                string Table = GetParam("table");
                string Type = GetParam("type");
                dynamic Model = Evan.Model.ConvertModel.ConvertToDynamic(ModelStr);
                string old_content = Evan.Common.DirFile.ReadFile(Model.FilePath);
                string old_path = Model.FilePath + "." + DateTime.Now.ToString("yyyyMMddHHmmssffff") + ".bak";
                //将old_content 存储为备份文件
                Evan.Common.DirFile.SaveFile(old_content, old_path);
                //将新的文件覆盖存储
                string new_content = (Model.FileContent).Replace("&", "&amp;"); ;
                Evan.Common.DirFile.SaveFile(new_content, Model.FilePath);
                Evan.SystemLog.SysLog.AddSysLog("管理员 [" + Evan.Member.Administrator.GetAdminName() + "] 修改Robots文件成功", "管理员 [" + Evan.Member.Administrator.GetAdminName() + "] 修改Robots成功<br/>文件名 : " + Model.FilePath + "<br/>备份文件名 : " + old_path);
                //返回
                JsonResult(context, 1, "修改成功");
            }
            catch (System.Threading.ThreadAbortException) { }
            catch (Exception ex)
            {
                Evan.SystemLog.MemLog.AddExLog2("编辑Robots失败", null, ex.ToString());
                Evan.SystemLog.SysLog.AddSysLog("管理员 [" + Evan.Member.Administrator.GetAdminName() + "] 修改Robots失败", "管理员 [" + Evan.Member.Administrator.GetAdminName() + "] 修改Robots失败");
                JsonResult(context, -1, "修改失败 , 请稍后重试");
            }

        }
       
    }
}